import axios from "axios";
import { ElMessage } from 'element-plus';
import useTokenStore from '@/stores/token.js';
import router from '@/router';

const baseURL = "/api";
const instance = axios.create({
  baseURL: baseURL  // 将 baseURL 放入配置对象中
});

// 添加请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 请求前的回调
    const tokenStore = useTokenStore();
    if (tokenStore.token) {
      config.headers.Authorization = tokenStore.token;
    }
    return config;
  },
  (err) => {
    // 请求错误的回调
    return Promise.reject(err);
  }
);

// 添加响应拦截器（本身就是异步的）
instance.interceptors.response.use(
  (result) => {
    return result.data;
  },
  (err) => {
    if (err.response && err.response.status === 401) {
      ElMessage.error('请先登入!');
      router.push('/');
    } else {
      ElMessage.error("服务异常");
    }
    return Promise.reject(err);
  }
);

export default instance;